#region Microsoft Public License
/*
 * (c) Copyright Chenjun Wu. http://utablesdk.codeplex.com
 * 
 * This source is subject to the Microsoft Public License (Ms-PL).
 * Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
 * All other rights reserved.
 */
#endregion

﻿using System;
using System.Windows;
using System.Windows.Media;

namespace UTable.Objects
{
    /// <summary>
    /// the abstract representation of an UI element that can be displayed
    /// </summary>
    public interface IVisualNode: IInputNode
    {
        /// <summary>
        /// Gets the id of this node
        /// </summary>
        String ID { get; }

        /// <summary>
        /// Gets or sets the width of this node
        /// </summary>
        double Width { get; set; }

        /// <summary>
        /// Gets or sets the height of this node
        /// </summary>
        double Height { get; set; }

        /// <summary>
        /// Gets or sets the clip region of this node
        /// </summary>
        Geometry Clip { get; set; }

        /// <summary>
        /// Gets or sets the visibility of this node
        /// </summary>
        Visibility Visibility { get; set; }

        /// <summary>
        /// Gets or sets the opacity of this node
        /// </summary>
        double Opacity { get; set; }

        /// <summary>
        /// Gets or sets the value that declares whether this 
        /// node can possibly be returned as a hit test result
        /// </summary>
        bool IsHitTestVisible { get; set; }
    }
}
